import { ajax } from '/ajax'
import { token, imgUrl } from '/public/static'
import { farmatDate } from '/utils'

Page({
  data: {
    // 自定义开始时间
    startTime:'',
    // 自定义结束时间
    endTime:'',
    // 普通收款列表
    ordinaryList: [],
    // 选择收银账单1和押金账单2
    orderStatus: 1,
    // 加载第几页
    page: 1,
    // 默认选日期
    selStatus: 0,
    // 默认选日期的今天
    selected: 1,
    // 支付方式
    payStyleList: [
      {pay_stype: '', text:'全部'},
      {pay_stype: 'weixin', text:'微信'},
      {pay_stype: 'alipay',text:'支付宝'},
    ],
     // 获取门店列表
    storeList: null,
    // 默认请求今日的数据
    time_type: 0,
    // 支付方式默认为全部
    payTypeStatus: 0,
    // 请求中的支付方式，默认全部
    payways:'',
    // 订单编号
    orderNum:''
  },
  // 跳转详情页
  showDetail(e){
    let out_trade_no = e.currentTarget.dataset.out_trade_no;
    let pay_status = e.currentTarget.dataset.pay_status;
    // 传入订单号
    // my.navigateTo({url:"../record-detail/record-detail?out_trade_no=" + out_trade_no });
    my.navigateTo({ url:"../record-detail/record-detail?out_trade_no=sp2019112609113624315201" });
  },
  // 获取订单号
  orderSearch(e) {
    console.log(e.detail.value)
    this.setData({orderNum : e.detail.value})
    // this.setData({orderNum : 'sp2019112609113624315201' })
  },
  // 点击查询
  orderSearchBtn() {
    // sp2019 1126 0911 3624 315201
    my.navigateTo({url:"../record-detail/record-detail?out_trade_no=" + this.data.orderNum  });
  },
  // 选择收银账单和押金账单
  topicSel(e) {
    let type = e.currentTarget.dataset.sel;
    this.setData({orderStatus: type})
  },
   // 选择时间或商铺
  timeOrStore(e) {
    this.setData({selStatus: e.currentTarget.dataset.type})
  },
  // 选择今天、昨天、本周
  pickDate(e) {
    this.setData({selected: e.currentTarget.dataset.selectDate})
    let num = e.currentTarget.dataset.selectDate - 1;
    this.setData({num:num})
    if(num === 3){
      console.log('自定义。。。。。')
    }else{
      this.setData({startTime:'',endTime:''})
      // 主要保存时间类型
      this.setData({page: 1,time_type: num });
      this.getOrdinaryList({ page: 1})
    }
    // console.log(e.currentTarget.dataset.selectDate)
  },
  // 选择哪个商铺
  selStores(e) {
    console.log(e);
    this.setData({
      storeStatus: e.currentTarget.dataset.index,
      storeNum: e.currentTarget.dataset.storeNum,
      store_name: e.currentTarget.dataset.store_name,
      page: 1
    })
    this.getOrdinaryList({ page: 1})
  },
  // 选择支付方式
  selPayStype(e) {
    console.log(e)
    this.setData({payTypeStatus: e.currentTarget.dataset.index})
    // 主要保存支付类型
    this.setData({ page : 1, payways: e.currentTarget.dataset.pay_stype})
    this.getOrdinaryList({ page: 1})
  },
  // 点击二维码语音提示
  scanOrderSpeech() {
    my.ix.speech({text: '请扫描订单码'});
  },
  // 多次扫描
  scanOrder() {
    my.ix.startCodeScan({scanType: "ALL"});//容器10.1.60.1-7可不调用
    my.ix.onCodeScan((scanR) => {
      if(scanR.success){
        my.ix.speech({
          text: '扫码成功',
          success: (r) => {
            my.navigateTo({url:"../record-detail/record-detail?out_trade_no=" + scanR.code });
          }
        });
      }else{
        my.ix.speech({text: '扫码失败'});
      }
  });
  },
  // 自定义选择时间
  datePickerYMDHMS(e) {
    let that = this;
    if(that.data.selected == 4) {
      console.log(e)
      let statusSel = e.currentTarget.dataset.status;
      console.log(statusSel)
      my.datePicker({
        format: 'yyyy-MM-dd HH:mm',
        currentDate:  farmatDate(new Date(), 'yyyy-MM-dd hh:mm', 7),
        startDate: '2018-01-01 00:00', 
        endDate: farmatDate(new Date(), 'yyyy-MM-dd hh:mm', 0),
        success: (res) => {
          console.log(res)
          // 自定义开始时间
          if(statusSel == 1) {
            that.setData({startTime: res.date})
            if(that.data.endTime) {
              that.getTotalData(that.data.startTime)
            }
            // that.getTotalData(that.data.startTime,that.data.endTime)
          // 自定义结束时间
          }else{
            that.setData({endTime: res.date})
            that.getTotalData(that.data.startTime)
          }
        },
      });
    }
  },
  // 自定义结束时间
  datePickerYMDHMS2(e) {
    let that = this;
    if(that.data.selected == 4) {
      console.log(e)
      let statusSel = e.currentTarget.dataset.status;
      console.log(statusSel)
      // let distanceTime = new Date(this.data.startTime);
      // console.log(distanceTime )
      // console.log(new Date())
      // console.log(distanceTime > new Date())
      my.datePicker({
        format: 'yyyy-MM-dd HH:mm',
        currentDate:  farmatDate(new Date(this.data.startTime), 'yyyy-MM-dd hh:mm', -7),
        // 开始时间选择的那个时间
        startDate: that.data.startTime, 
        // 结束时间是 开始时间推后7天
        endDate:  farmatDate(new Date(this.data.startTime), 'yyyy-MM-dd hh:mm', -7),
        success: (res) => {
          console.log(res)
          // 自定义开始时间
          if(statusSel == 1) {
            that.setData({startTime: res.date})
            if(that.data.endTime) {
              that.getTotalData(that.data.startTime)
            }
            // that.getTotalData(that.data.startTime,that.data.endTime)
          // 自定义结束时间
          }else{
            that.setData({endTime: res.date})
            that.getTotalData(that.data.startTime)
          }
        },
      });
    }
   
  },
   // 按时间段请求数据
  getTotalData(params) {
    console.log('开始',this.data.startTime,'结束',this.data.endTime)
    if(params){
      // 时间段提示先隐藏
      let start = new Date(this.data.startTime);
      let end = new Date(this.data.endTime);
      // console.log(new Date(start) , new Date(end) );
      // console.log(end - start );
      // 如果开始开始大于结束时间
      if( end < start) {
        my.showToast({
          type:'fail',
          content:'开始开始大于结束时间'
        });
        return false
      }
      // 如果选择范围超过7天,重新选择结束时间
      if( (end - start) > 604800000){
        my.showToast({
          type:'fail',
          content:'选择范围超过7天,重新选择结束时间'
        });
        // console.log('选择范围超过7天,重新选择结束时间')
      }else{
        this.setData({time_type: '',start_time:this.data.startTime,end_time:this.data.endTime})
        // {start_time:this.data.startTime,end_time:this.data.endTime}
        this.getOrdinaryList({page: 1})
      }
      console.log('可以请求了')
    }else{
      console.log('开始时间还没选')
      my.showToast({
        type:'fail',
        content:'请选择开始时间',
        success: () => {
          // 清空结束时间
          this.setData({endTime:''})
        }
      });
    }
  },
  // 普通订单列表
  async getOrdinaryList(data) {
    let that = this;
    let parame = {
      token: my.getStorageSync({key: 'token'}).data,
      devices: this.data.storeNum? this.data.storeNum : my.getStorageSync({key: 'devices'}).data,
      start_time: this.data.start_time,
      end_time: this.data.end_time,
      // 支付方式
      payways: that.data.payways,
      time_type: that.data.time_type,
      page: data.page? data.page : 1,
      limit: 6
    }
    console.log(parame)
    my.showLoading({content:'加载中'});
    let listDate = await ajax('/SmallAppSmilePayLists', parame)
    console.log(listDate)
    my.hideLoading();
    if(listDate.status === 200 ){
      console.log('查询成功')
      // page>1就意味着拼接
      if(that.data.page > 1 ){
        console.log("同一个")
        // 如果time_type同一个请求就拼接列表
        this.setData({ordinaryList: that.data.ordinaryList.concat(listDate.data.data)})
      }else{
        console.log("换一个")
        // 如果time_type不同请求列表就替换
        this.setData({ordinaryList: listDate.data.data})
      }
      this.hidden();
      console.log(that.data.ordinaryList)
    }
  },
  // 获取门店列表
  getStoreList() {
    let token = my.getStorageSync({ key: 'token' }).data;
    ajax('/SmallAppDeviceList',{token}).then((res) => {
     console.log(res)
     this.setData({storeList: res.data.list})
    }).catch((err) => {
      console.log(err)
    })
  },
  // 阴影部分点击隐藏遮罩层
  hidden() {
    this.setData({selStatus: 0 })
  },
  onLoad() {
    // 请求门店
    this.getStoreList()
    // 请求数据列表
    this.getOrdinaryList({time_type: this.data.time_type, page: 1});
    
  },
  onShow() {
    this.scanOrder()
  
  },
  // 下拉刷新
  onPullDownRefresh() {
    // console.log('下拉刷新')
    let that = this;
    let page = 1
    that.setData({page,ordinaryList:[]});
    this.getOrdinaryList({page})
    // 停止刷新
    my.stopPullDownRefresh()
  },
  // 上拉加载
  onReachBottom() {
    let page = this.data.page + 1 ;
    this.setData({page})
    this.getOrdinaryList({page})
  }
});
